package Negocio;

import java.util.ArrayList;

import javax.persistence.*;

import DTO.EmpresaSeguridadVO;
import SRV.DireccionSRV;
import SRV.FacturaProveedorSRV;

@Entity
@DiscriminatorValue("empSeguridad")
public class EmpresaSeguridad extends Proveedor
{
	@Column (name="tarifaSeguridad")
	private float tarifa;
	
	public EmpresaSeguridad(long cuit, String nombre, Direccion direccion, float tarifa) 
	{
		super(cuit, nombre, direccion);
		this.tarifa = tarifa;
	}
	
	public EmpresaSeguridad toBusiness(EmpresaSeguridadVO seguridadContratada) {
	    Direccion direccion = new Direccion();
	    DireccionSRV daoDir =  new DireccionSRV();
	    direccion = daoDir.getDireccion(seguridadContratada.getDireccion());
	    
	    EmpresaSeguridad devuelto = new EmpresaSeguridad(seguridadContratada.getCuit(), seguridadContratada.getNombre(), 
		    direccion, seguridadContratada.getTarifa());
	    
	    FacturaProveedor factura = new FacturaProveedor();
	    FacturaProveedorSRV daoFact = new FacturaProveedorSRV();
	    
	    for (Integer idAux : seguridadContratada.getFacturas()){
	    	factura = daoFact.getFacturaProvvedor(idAux);
	    	devuelto.agregarFactura(factura);
	    }
	    
	    return devuelto;
	}
	
	public EmpresaSeguridad(){super();}

	public float getTarifa() {
		return tarifa;
	}

	public void setTarifa(float tarifa) {
		this.tarifa = tarifa;
	}
	
	public EmpresaSeguridadVO toVO(){
	    ArrayList<Integer> facturasVO = new ArrayList<Integer>();
		
	    for (FacturaProveedor aux : getFacturas()){
		facturasVO.add(aux.getIdFacturaProveedor());
	    }
	    
	    EmpresaSeguridadVO aux = new EmpresaSeguridadVO(getCuit(), getNombre(), getDireccion().getIdDireccion(), facturasVO, getTarifa());
	    return aux;
	}

	@Override
	public boolean esCarrier() {
		return false;
	}

	@Override
	public boolean esTallerGeneral() {
		return false;
	}

	@Override
	public boolean esTallerOficial() {
		return false;
	}

	@Override
	public boolean esAgenteOficial() {
		return false;
	}

	@Override
	public boolean esEmpresaSeguros() {
		return false;
	}

	@Override
	public boolean esEmpresaSeguridad() {
		return true;
	}
}
